---
sidebar_position: 2
---

import FolderView from '@site/src/components/FolderView';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# 资源包加密
Nukkit-MOT 支持使用加密资源包保护您的作品。本指南将帮助您通过简单的三步配置实现资源包加密。

:::caution 新手须知
该加密基于 AES 对称算法，虽然能有效提高资源包安全性，但无法完全杜绝抓包等专业手段破解
:::

## 📦 加密资源包 \{#encrypt-resource-pack}
{/* 推荐使用 [encryptmypack](https://encryptmypack.com) 在线工具进行加密，操作流程：
1. 准备符合要求的资源包：
   - 必须使用 `.mcpack` 格式
   - 解压后直接可见 `manifest.json` 文件（不能嵌套在子文件夹中）
2. 上传到加密网站生成加密包 */}
推荐使用开源命令行工具 EncryptMyPack 进行加密，操作流程：

1. **下载工具**  
   从 [GitHub Releases](https://github.com/AllayMC/EncryptMyPack/releases/latest) 下载最新版程序

2. **准备资源包**  
   - 必须为 `.zip` 格式（可直接重命名 .mcpack 文件）
   - 压缩包根目录必须包含 `manifest.json` 文件
   - 支持包含子资源包（Sub Packs）

3. **加密**

inputZip 为输入的压缩包文件全名，例如 `example.zip`

outputZip 为输出的压缩包文件全名，例如 `example.zip`

key 为自定义的 32 位密钥，若不指定 key 则使用默认密钥 `liulihaocai123456789123456789123`

<Tabs groupId="operating-systems">
  <TabItem value="win" label="Windows">
```bash
EncryptMyPack.exe encrypt <inputZip> <outputZip> [key]
```
  </TabItem>
  <TabItem value="mac" label="macOS">
```bash
EncryptMyPack encrypt <inputZip> <outputZip> [key]
```
</TabItem>
  <TabItem value="linux" label="Linux">
添加可执行权限
```bash
chmod +x EncryptMyPack
```

方可继续使用
```bash
./EncryptMyPack encrypt <inputZip> <outputZip> [key]
```
</TabItem>
</Tabs>

:::tip 重要提醒
Nukkit-MOT 仅负责向客户端传递密钥，不参与实际的加密/解密过程
:::

## 🔑 配置加密密钥 \{#configure-key}
1. 在服务端 `resource_packs` 文件夹中
2. 创建与加密包同名的 `.key` 文件
3. 在.key文件中粘贴32位加密密钥

<FolderView
  paths={[
    'resource_packs/示例资源包.mcpack',
    'resource_packs/示例资源包.mcpack.key'
  ]}
/>

## 🔄 重启服务端 \{#restart-server}
修改配置后必须重启服务器才能使加密生效（Nukkit-MOT 仅在启动时加载资源包配置）

## ❓ 常见问题解答 \{#faq}
| 问题 | 解答 |
|------|------|
| 加密后资源包能被破解吗？ | 可能会遭受专业手段破解，但比未加密资源包安全得多 |
| 加密是否影响游戏性能？ | 完全不会影响客户端和服务端性能 |
| 支持多个加密包吗？ | 可以同时部署多个加密包，每个都需要对应.key文件 |

:::success 完成！
现在您的玩家加载资源包时，客户端会自动使用配置的密钥进行解密加载
:::